class CPU:
    pass


class Disk:
    pass


class Computer:
    # 电脑由CPU和硬盘组成
    def __init__(self, cpu, disk):
        self.cpu = cpu
        self.disk = disk


cpu = CPU()
disk = Disk()

com = Computer(cpu, disk)
com1 = com

print(com, '子对象的内存地址：', com.cpu, com.disk)
print(com1, '子对象的内存地址：', com1.cpu, com1.disk)
print('-'*100)

# 类对象的浅拷贝
import copy

# 深拷贝，使用copy模块。
# deepcopy函数，递归拷贝对象中包含的子对象，源对象和拷贝对象所有的子对象也不相同。
print(com, '子对象的内存地址：', com.cpu, com.disk)
com2 = copy.copy(com)
print(com2, '子对象的内存地址：', com2.cpu, com2.disk)
print('-'*100)

print(com, '子对象的内存地址：', com.cpu, com.disk)
com3 = copy.deepcopy(com)
print(com3, '子对象的内存地址：', com3.cpu, com3.disk)

